对象的键名只能是字符串和 Symbol 类型。
其他类型的键名会被转换成字符串类型。
对象转字符串默认会调用 toString 方法。
<script>
    //a['123']和a[123]一样，数字123会变成转成字符串
    // var a = {}, b = '123', c = 123;
    // a[b] = 'b';
    // a[c] = 'c';
    // console.log(a[b])//'c'
</script>
<script>
    //凡是属性名属于 Symbol 类型，就都是独一无二的
    // var a = {}, b = Symbol('123'), c = Symbol('123');
    // a[b] = 'b';
    // a[c] = 'c';
    // console.log(a[b]);//b
</script>
<script>
    var a = {}, b = { key: '123' }, c = { key: '456' };
    a[b] = 'b';//对象类型会调用 toString 方法转换成字符串 [object Object]。
    a[c] = 'c';//对象类型会调用 toString 方法转换成字符串 [object Object]。这里会把 b 覆盖掉
    console.log(a[b]);//c
</script>